Computer networks often employ the use of routers to interconnect a plurality of network devices (e.g., client devices, other routers, etc.), and to correspondingly route traffic/data (e.g., packets) between the interconnected network devices, as will be understood by those skilled in the art. Also, routers may be configured to apply certain services to the traffic, such as Quality of Service (QoS) functions that may be used to control the traffic (e.g., to manipulate the traffic in some manner), such as to achieve a desired transmission rate according to one or more desired/required rate limitations (e.g., bandwidth). For instance, a router may operate on different types of traffic, for example, distinguishing between voice and data traffic, such that the router may prioritize and appropriately queue different classes of traffic to provide router QoS.
Also, cable modems may be used to interconnect one or more network devices to a cable network (e.g., a service provider's network), so that the network devices may access other networks, such as the Internet. Cable modems translate traffic between the network devices and the cable network into appropriate transmission formats. Cable modems typically operate on service-flows, which may be defined by particular parameters/classifications as will be understood by those skilled in the art, such that traffic may be assigned to a particular service flow by the cable modem, and transmitted to the cable network accordingly. In other words, the cable network may provide backpressure (e.g., a congestion detection/indication) to the cable modem that is specific to a particular service-flow, and the cable modem may then be configured to apply QoS to that particular service flow to reduce congestion on the cable network.
In certain network configurations, a router (and all the network devices supported by the router) may be interconnected to a cable modem via an external interface (i.e., as separate devices), such as an Ethernet interface. Since the Ethernet interface generally has an available bandwidth that is significantly higher than the cable network bandwidth, the router is restricted in its ability to natively enforce an effective QoS policy. In particular, in order to keep from overflowing the cable modem and/or cable network, the router would need to control (e.g., shape) traffic over the Ethernet interface to a finite value/rate that is equal to a minimum guaranteed aggregate rate of the cable network. The fundamental problem with this approach is that the cable network bandwidth can often exceed the minimum guaranteed rate, such as where other members of the cable network are not fully utilizing the available bandwidth, as will be understood by those skilled in the art. The router, therefore, would not be fully utilizing all of the available bandwidth.
Furthermore, the router generally multiplexes the received traffic from its interconnected network devices onto the external Ethernet interface on a first-come first-go basis, regardless of whether the traffic would belong to a particular service-flow at the cable modem, particularly because the router is unaware of the service-flow parameters/classifications. This multiplexing of traffic ignores service-flow differentiation and defeats the use of any existing per-interface flow control methods for the purpose of providing per service-flow backpressure, such as “PAUSE” frames (an Ethernet-based request by the cable modem for the router to temporarily stop sending all traffic on the interface). Accordingly, the router is generally forced to control/restrict an aggregate rate of all service-flows (i.e., all traffic sent from the router to the cable modem) simultaneously, thus preventing the router from taking advantage of all available bandwidth, such as where one service flow is more congested than another service flow. There remains a need, therefore, for a technique that applies router QoS on a cable modem interface on a per-service-flow basis.